package com.sg.dto.biz.bff.common;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;


/**
 * @desc BffTargetTempDto
 * @使用场景
 */
@Data
public class BffTargetTempDto implements Serializable {

    /**
     * 指标模板ID
     */
    @ApiModelProperty("指标模板ID")
    private String objectiveTemplateId;

    /**
     * 指标模板类型 QUALITATIVE:定性 RATION:定量
     */
    @ApiModelProperty("指标模板类型")
    private String objectiveTemplateType;

    /**
     * 是否有目标值 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否有目标值")
    private String isTargetValue;

    /**
     * 指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("指标业务类型")
    private String objectiveValueType;

    /**
     * 是否左侧比例型 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否左侧比例型")
    private String isLeft;

    /**
     * 是否用于评价模板 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否用于评价模板")
    private String isUseevaluationTemplate;

    /**
     * 单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率 SET:套 TIMES:次 PART:部 NNT:人
     */
    @ApiModelProperty("单位")
    private String unit;

    /**
     * 目标值数据源 MANUAL_FILLING:人工填报 SYSTEM_DOCKING:外部系统对接
     */
    @ApiModelProperty("目标值数据源")
    private String objectiveValueSource;

    /**
     * 是否结果指标 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否结果指标")
    private String isResultIndicator;

    /**
     * 指标模板编号
     */
    @ApiModelProperty("指标模板编号")
    private String objectiveTemplateNumber;

    /**
     * 指标模板名称
     */
    @ApiModelProperty("指标模板名称")
    private String objectiveTemplateName;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;
    /**
     * 是否推荐 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否推荐")
    private String isRecommend;

    /**
     * 操作人就职记录ID
     */
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 用户昵称
     */
    @ApiModelProperty("用户昵称")
    private String nickName;

    /**
     * 真实姓名
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 真实头像
     */
    @ApiModelProperty("真实头像")
    private String userFace;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        BffTargetTempDto that = (BffTargetTempDto) o;
        return objectiveTemplateId == that.objectiveTemplateId && objectiveTemplateType == that.objectiveTemplateType && isTargetValue == that.isTargetValue && objectiveValueType == that.objectiveValueType && isLeft == that.isLeft && isUseevaluationTemplate == that.isUseevaluationTemplate && unit == that.unit && objectiveValueSource == that.objectiveValueSource && isResultIndicator == that.isResultIndicator && objectiveTemplateNumber == that.objectiveTemplateNumber && objectiveTemplateName == that.objectiveTemplateName && subjectLifeCycle == that.subjectLifeCycle && isRecommend == that.isRecommend && operationInductionId == that.operationInductionId && operateTime == that.operateTime && nickName == that.nickName && idCardName == that.idCardName && userFace == that.userFace;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), objectiveTemplateId, objectiveTemplateType, isTargetValue, objectiveValueType, isLeft, isUseevaluationTemplate, unit, objectiveValueSource, isResultIndicator, objectiveTemplateNumber, objectiveTemplateName, subjectLifeCycle, isRecommend, operationInductionId, operateTime, nickName, idCardName, userFace);
    }


}
   